Шифратор 25->5

Название Размерность Тип
Input
Output
G
32
5
1
вход
выход
выход

На входе дано 32-х разрядное число Input, состоящее из 1 единицы и 31 нуля либо из одних нулей. Опредилить, на каком бите стоит единица и выдать в качестве результата двоичный код номера этого бита на Output и единицу на G. Если на входе все нули, выдать нули на контакт Output и нуль на контакт G.


Примечание
В разработке схемы использовать шифраторы 23->3, предварительно спроектированные.

Пример:
Input: 00000000000000000000000000000100
Output: 00010
G: 1


Таблица истинности для шифратора 23->3

Входы Выходы
X0
0
X1
1
X2
2
X3
3
X4
4
X5
5
X6
6
X7
7
Y2
2
Y1
1
Y0
0
G
0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 0 0 0 0 0 1 1
0 0 1 0 0 0 0 0 0 1 0 1
0 0 0 1 0 0 0 0 0 1 1 1
0 0 0 0 1 0 0 0 1 0 0 1
0 0 0 0 0 1 0 0 1 0 1 1
0 0 0 0 0 0 1 0 1 1 0 1
0 0 0 0 0 0 0 1 1 1 1 1
Корпус шифратора
23->3
Корпус шифратора
2k->k


Составим схему для шифратора23->3. Используя таблицу истинности, составляем логические функции:

Y2 = X4 V X5 V X6 V X7

Y1 = X2 V X3 V X6 V X7

Y0 = X1 V X3 V X5 V X7

G = X0 V X1 V X2 V X3 V X4 V X5 V X6 V X7

Используя среду HLCCAD, проектируем схему на основе этих функций:

Схема шифратора 23->3


Составляя таблицу истинности для шифратора 25->5, замечаем, что ее можно условно разделить на части:

Таблица истинности для шифратора 25->5

Входы Выходы
X0...X7 X8...X15 X16...X23 X24...X31 Y4 Y3 X2...Y0 G
0 0 0 0 0 0 0 0
10...0
01...0
...
00...1
0 0 0 0 0 [как у шифратора 23->3] 1
0 10...0
01...0
...
00...1
0 0 0 1 [как у шифратора 23->3] 1
0 0 10...0
01...0
...
00...1
0 1 0 [как у шифратора 23->3] 1
0 0 0 10...0
01...0
...
00...1
1 1 [как у шифратора 23->3] 1

Значит, для получения значений на контактах Y2,Y1,Y0 можно использовать шифраторы 23->3. Причем сигналы каждой из четырех частей входных данных посылаем на отдельный шифратор. На выходе Y каждого из четырех таких шифраторов получим либо все нули, либо двоичный код для выходных контактов Y2, Y1, Y0. Для того чтобы знать, с какого шифратора необходимо взять выходные сигналы, используем значения G шифраторов, которые при пропуске через новый шифратор дадут двоичный код нужной линии. Т.к. значений G мы получим четыре, то дополняем оставшиеся старшие четыре бита нулями. Из выходных сигналов используем только 2 младших бита контакта Y, которые и отправляем на адресную линию мультиплексора, определяющий, с какого шифратора необходимо подать сигналы на контакты Y2, Y1, Y0. Эти же биты дают необходимые значения для контактов Y5 и Y4. А четыре значения G с каждого шифратора при конъюнкции образуют сигнал для выходного сигнала G разрабатываемого шифратора.

Схема шифратора 25->5